iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 14
0
自我挑戰組

向Android APP開發說Hello系列 第 14

Day 14. App語言轉換 - Localization

  • 分享至 

  • xImage
  •  

目前為止,我們的練習都是直接在XML中輸入所需文字,但如果要讓App能夠根據使用者手機語言設定調整呢? 這時就需要用到資源Resources了。

資源

在Android的資源中,除了預設資源,我們還能夠設定許多替代資源以應付各種狀況,例如:

  • 不同的語言設定
  • 不同的裝置大小
  • 不同的螢幕解析度
  • 不同的Android版本

語言設定

在res資料夾中(有關資料夾的結構,可參考Day 6. VIEWS - 簡單的回顧),App會依據系統的語言設定決定要讀的資料夾,如果沒有對應的,就讀預設的vlaues

  • values
    • strings.xml
  • vlaues_en
    • strings.xml
  • vlaues_jp
    • strings.xml
      TIP: Android使用ISO 639-1,建立資源時可以找到對應的語言縮寫。

實作語言設定

設定預設語言

  1. 打開strings.xml,查看預設內容如下:
<resources>
    <string name="app_name">Java2</string>
</resources>
  1. 將app中所有要轉換的字抽出來,放到strings.xml中,例如TextView的屬性:
    android:text="姓名" 換成
    android:text="@string/customerName"

  2. 在strings.xml的<resources> </resources>標籤中新增:

<string name="customerName">姓名</string>
  1. 依序將所有要替換的文字設定完後strings.xml如下:
<resources>
    <string name="app_name">Java2</string>
    <string name="storeName">這樣母Tom便當店</string>
    <string name="customerName">姓名</string>
    <string name="addPlasticBag">加購購物袋(需加2元)</string>
    <string name="quantity">數量</string>
    <string name="orderInfo">訂單資訊</string>
    <string name="submit">送出訂單</string>
</resources>

增加其他語言

  1. 在Android Studio的左側目錄樹中,對strings.xml按右鍵 > 打開Translations Editor:
    https://ithelp.ithome.com.tw/upload/images/20181029/20107569BsdG2Ttqfn.png

  2. 按Add Local按鈕(地球圖示),找到要用的語言,例如us
    https://ithelp.ithome.com.tw/upload/images/20181029/20107569hxUQJqJpuq.png

  3. 在對應表中填入對應的語言文字,設定完後可以發現strings資料夾下多了兩個不同的strings.xml檔案,分別為us與ja
    https://ithelp.ithome.com.tw/upload/images/20181029/20107569PpUSrZl6dg.jpg

實際跑跑看

將手機的語言設定分別設定為繁體中文、英文、日文時,App顯示如下:
(以下翻譯結果概不負責)
https://ithelp.ithome.com.tw/upload/images/20181029/20107569apFy72ac48.png


上一篇
Day 13. App間的資訊傳遞 - Intent
下一篇
Day 15. App的樣式 - Style
系列文
向Android APP開發說Hello30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言